package com.client.controller;

import com.client.service.impl.EmailServiceImpl;
import com.client.utils.ResponseMsg;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequiredArgsConstructor
public class EmailController {
    // 注入邮件验证服务（Spring会自动实例化）
    private final EmailServiceImpl emailService;

    /**
     * 发送验证码接口
     * POST /api/email/send-code?email=user@example.com
     */
    @GetMapping("/sendCode/{email}")  // 映射Get请求到/sendCode路径
    public ResponseMsg sendCode(@PathVariable String email) {// 从请求参数中获取email值
        // 调用服务层方法发送验证码
        emailService.sendVerifyCode(email);
        return ResponseMsg.getInstance(ResponseMsg.SUCCESS, "验证码已发送~");
    }
    /**
     * 验证码校验接口
     * POST /verify
     */
    @GetMapping("/verify/{email}/{code}")  // 映射POST请求到/verify路径
    public ResponseMsg verifyCode(
            @PathVariable String email,   // 从请求参数获取邮箱
            @PathVariable String code     // 从请求参数获取验证码
    ) {
        // 调用服务层验证验证码有效性
        boolean isValid = emailService.verifyCode(email, code);

        // 根据验证结果返回不同响应：
        return isValid
                ? ResponseMsg.getInstance(ResponseMsg.SUCCESS, "验证成功~")       // 验证成功返回200
                : ResponseMsg.getInstance(ResponseMsg.ERROR, "验证码错误~") ; // 失败返回400
    }
}
